// 导入createPinia和createPersistedState
import { createPinia } from 'pinia'
import { createPersistedState } from 'pinia-plugin-persistedstate'

// 创建pinia实例
const pinia = createPinia()
// 使用createPersistedState插件，并传入存储配置
pinia.use(createPersistedState({
  storage: {
    // 获取存储数据
    getItem: (key) => {
      try {
        const data = uni.getStorageSync(key)
        return data || null
      } catch (err) {
        console.error('获取存储数据失败', err)
        return null
      }
    },
    setItem: (key, value) => {
      try {
        uni.setStorageSync(key, value)
      } catch (err) {
        console.error('设置存储数据失败', err)
      }
    },
    removeItem: (key) => {
      try {
        uni.removeStorageSync(key)
      } catch (err) {
        console.error('删除存储数据失败', err)
      }
    }
  },
  // 添加序列化配置避免循环引用
  serializer: {
    serialize: (value) => {
      try {
        return JSON.stringify(value)
      } catch (err) {
        console.error('序列化失败', err)
        return '{}'
      }
    },
    deserialize: (value) => {
      try {
        return value ? JSON.parse(value) : {}
      } catch (err) {
        console.error('反序列化失败', err)
        return {}
      }
    }
  }
}))

export default pinia 